class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
//合并两个有序数组 不就是归并排序中的一部分吗 甚至说没有那么难 
    vector<int> nums(nums1);//拷贝构造一下
    int k = 0;
    int i =0 ,j = 0; 
   while(i<m && j<n)//i和j就是两个双指针 一个指向nums数组一个指向nums2数组
    {
        if(nums[i]<nums2[j])//如果i小 就把i放进去 
        nums1[k++] = nums[i++];
        else//如果j小 或者相等 就把j指向元素放进去
        nums1[k++] = nums2[j++];
    }
    while(i<m)  nums1[k++] = nums[i++];
    while(j<n) nums1[k++] = nums2[j++];
    }
};
